#ifndef COLAPHEAP_H
#define COLAPHEAP_H

#include"ColaPrioridad.h"

#define MAX_ARREGLO 100
#define MINIMO -8888888

template<class T, class P>
class ColaPHeap : public ColaPrioridad<T,P>{

protected:

    struct nodoColaP;
    typedef nodoColaP heap;
    
    struct nodoColaP{
        T dato;
        P prioridad;
    };

    heap *arreglo;
    int tope;
    int capacidad;

public:
    
    ColaPHeap (int tamMax=MAX_ARREGLO);

	void Vacio(int tamMax);

    void Insertar(T& dato, const P& prioridad);
    
    void EliminarMin();
    
    T& ObtenerMin();

    void Decolar();//Metodo para explotar la cola.
    
    bool EsVacia();
    
    bool EstaLlena();
    
    ~ColaPHeap();
};

#include "ColaPHeap.cpp"

#endif